import java.util.List;
import java.util.Vector;

public abstract class JugadorAlfa extends Thread{
	/*
	private Juego juego;
	private List<Movimiento> movimientos = new Vector<Movimiento>();
	private Coordenada coordActual;;
	
	
	public List<Movimiento> getMovimientos() {
		return movimientos;
	}

	public void setMovimientos(List<Movimiento> movimientos) {
		this.movimientos = movimientos;
	}

	public Coordenada getCoordActual() {
		return coordActual;
	}

	public void setCoordActual(Integer x, Integer y) {
		Coordenada coordenada = new Coordenada(x,y);
		this.coordActual = coordenada;
	}
	
	public JugadorAlfa(Juego juego,Integer x,Integer y, List<Movimiento> movimientos){
		this.juego = juego;
		this.setCoordActual(x,y);
		this.setMovimientos(movimientos);
	}
	
	public Coordenada coordAMover(Movimiento mov){
		
		Integer myX = this.getCoordActual().getX();
		Integer myY = this.getCoordActual().getY();
		
		if(mov == Movimiento.NORTE)
			return new Coordenada(myX+1, myY);
		
		if(mov == Movimiento.SUR)
			return new Coordenada(myX-1, myY);
		
		if(mov == Movimiento.ESTE)
			return new Coordenada(myX, myY+1);
		
		if(mov == Movimiento.OESTE)
			return new Coordenada(myX, myY-1);
		
		return this.getCoordActual();
		
	}
	
	public boolean puedoMover(Movimiento mov){
		Coordenada coordDestino = coordAMover(mov);
		return this.juego.puedoOcuparCelda(coordDestino);
	}
	
	public Celda darmeCeldaDe(Coordenada coord){
		return this.juego.getCelda(coord);
	}
	
	public abstract boolean esPosibleMover(Movimiento mov);
	
	
	@Override
	public void run() {

		for(Movimiento movimiento : this.getMovimientos()){
			
			while(!puedoMover(movimiento)){
				try {
					this.darmeCeldaDe(coordAMover(movimiento)).esperarPorCelda();
				} catch (InterruptedException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}
			
	}
	*/
}
